//显示图片
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

int main()
{
	//打开lcd
	int lcd_fd;
	lcd_fd = open("/dev/fb0", O_RDWR);
	if(-1 == lcd_fd)
	{
		perror("open lcd failed!\n");
		return -1;
	}
	else
	{
		printf("open lcd success!\n");
	}
	//打开图片
	int bmp_fd;
	bmp_fd = open("./1.bmp", O_RDONLY);
	if(-1 == bmp_fd)
	{
		perror("open 1.bmp failed!\n");
		return -1;
	}
	
	//定义图片像素数据缓冲区
	char bmp_buf[800*480*3];
	read(bmp_fd, bmp_buf, sizeof(bmp_buf));
	
	//讲24位bmp图片像素转换为32位
	char buf32[800*480*4];
	int i;
	for(i=0; i<800*480; i++)
	{
		buf32[0+i*4] = bmp_buf[0+i*3];//b
		buf32[1+i*4] = bmp_buf[1+i*3];//g
		buf32[2+i*4] = bmp_buf[2+i*3];//r
		buf32[3+i*4] = 0;//a
	}
	//讲颜色数据写入lcd
	write(lcd_fd, buf32, sizeof(buf32));
	//关闭lcd
	close(lcd_fd);
	close(bmp_fd);
	
	return 0;
}
